/**
 *
 * Usuario : administrator
 * Creaci&oacute;n: 24/11/2005 - 11:31:05 AM
 * Cambios :
 *  Fecha | Autor  |  Cambios
 *  24/11/2005 | <a href = "mailto:AngelElectrico@PsiqueWare.com">Angel El&eacute;ctrico</a> | Creaci&oacute;n del Objeto.
 */

package com.psiqueware.alheli.seguridad;

import com.psiqueware.alheli.basico.BaseObjectInterface;

import java.util.List;

/**
 * Conjunto de {@link Permiso}s que pertenecen a un {@link Agrupacion} dado.
 * Este contrato no esta construido para extenderse sino para ofrecer una fachada sobre
 * la implementaci&oacute;n de {@link Rol} que fomente el encapsulamiento de la funcionalidad
 * a fin de evitar discrepancias en la informaci&oacute;n.
 * </p>
 * <br/>Paquete Original: com.psiqueware.basico.seguridad
 * <br/>Nombre  Original: Rol
 * <br/><a href="Rol.java.html"><i>Ver C&oacute;digo Fuente</i> </a>
 *
 * @author <a href="mailto:AngelElectrico@psiqueware.com">Angel El&eacute;ctrico</a>
 * @version Revision: 1.1 24/11/2005 11:31:05 AM
 */
public interface Rol extends BaseObjectInterface
{
    /**
     * {@link Permiso} para alterar los {@link Rol}.
     */
    public final static Permiso PERMISO = new Permiso("Permiso.Rol",true);

    /**
     * Devuelve una copia de la lista con los {@link Permiso} asignados a este {@link Rol}.
     *
     * @return {@link List} de objetos {@link Permiso}.
     */
    List<Permiso> getPermisos();

    /**
     * Convierte este {@link Rol} a su representaci&oacute;n textual.
     *
     * @noinspection DuplicateStringLiteralInspection
     */
    String toString();

    /**
     * Devuelve el {@link Agrupacion} que es due&ntilde;o de este {@link Rol}.
     *
     * @return Agrupaci&oacute;n para este {@link Rol}.
     */
    Agrupacion getAgrupacion();

    /**
     * Devuelve el m_nombre de este {@link Rol}
     *
     * @return String con el nombre.
     */
    String getNombre();

    /**
     * Devuelve Id del <RolK/>.
     *
     * @return Long m_id.
     */
    Long getId();
}
